package com.gxc.integer;

/**
 *
 3099. 哈沙德数
 如果一个整数能够被其各个数位上的数字之和整除，则称之为 哈沙德数（Harshad number）。
 给你一个整数 x 。如果 x 是 哈沙德数 ，则返回 x 各个数位上的数字之和，否则，返回 -1
 */
public class SumOfTheDigitsOfHarshadNumber {

    public static void main(String[] args) {
        System.out.println(handle(18));
        System.out.println(handle(23));
    }

    public static int handle(int x) {
        int sum = 0;
        int digit = 100;
        sum = x%10;
        int y =x;
        while (digit>=10) {
            sum += y/digit;
            y = y - y/digit*digit;
            digit = digit/10;
        }
        return x%sum == 0?sum:-1;
    }

    class Solution {
        public int sumOfTheDigitsOfHarshadNumber(int x) {
            int s = 0;
            for (int y = x; y != 0; y /= 10) {
                s += y % 10;
            }
            return x % s != 0 ? -1 : s;
        }
    }

}
